'Description: Calls the "Choose Color Dialog" without need for an OCX

'Private Type ChooseColor
'    lStructSize As Long
'    hwndOwner As Long
'    hInstance As Long
'    rgbResult As Long
'    lpCustColors As String
'    flags As Long
'    lCustData As Long
'    lpfnHook As Long
'    lpTemplateName As String
'End Type

'Private Declare Function ChooseColor Lib "comdlg32.dll" Alias "ChooseColorA" (pChoosecolor As ChooseColor) As Long

'Place the following code in under a command button or in a menu, etc...

	Dim cc As ChooseColor
        Dim CustColor(16) As Long
        cc.lStructSize = Len(cc)
        cc.hwndOwner = Form1.hWnd
        cc.hInstance = App.hInstance
        cc.flags = 0
        cc.lpCustColors = String$(16 * 4, 0)
        Dim a
        Dim x
        Dim c1
        Dim c2
        Dim c3
        Dim c4
        a = ChooseColor(cc)
        Cls
        If (a) Then
	        MsgBox "Color chosen:" & Str$(cc.rgbResult)

                For x = 1 To Len(cc.lpCustColors) Step 4
                        c1 = Asc(Mid$(cc.lpCustColors, x, 1))
                        c2 = Asc(Mid$(cc.lpCustColors, x + 1, 1))
                        c3 = Asc(Mid$(cc.lpCustColors, x + 2, 1))
                        c4 = Asc(Mid$(cc.lpCustColors, x + 3, 1))
                        CustColor(x / 4) = (c1) + (c2 * 256) + (c3 * 65536) + (c4 * 16777216)
                        MsgBox "Custom Color " & Int(x / 4) & " = " & CustColor(x / 4)
                Next x
        Else
                MsgBox "Cancel was pressed"
        End If